<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1limpiar-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="/templates/masterLayout.xhtml">
	<ui:define name="title">NUEVO PEDIDO</ui:define>
	<ui:define name="content">
		<p:growl id="mensaje" showDetail="true" life="7000" />

		<p:panel id="panel" header="NUEVO PEDIDO"
			style="margin-bottom:10px;height:auto;">

			<h:form id="formTotales" style="height: 0px;">
				<h:panelGrid columns="2" cellspacing="2"
					style="float: right;text-align: right !important;">

					<h:outputText styleClass="letrasGrandes" value="SUB-TOTAL 12%:"
						style="padding-left: 4px;" />
					<h:outputText
						value="#{pedidoBean.cantidadFacturaPresentar.subTotalIva}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 5px;"
						value="SUB-TOTAL 0%:" />
					<h:outputText
						value="#{pedidoBean.cantidadFacturaPresentar.subTotalNoIva}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 4px;"
						value="DESCUENTO PRODUCTO:" />
					<h:outputText
						value="#{pedidoBean.cantidadFacturaPresentar.descuentoProducto}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 4px;"
						value="DESCUENTO PEDIDO" />
					<p:inputText
						value="#{pedidoBean.cantidadFacturaPresentar.descuentoEgreso}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;">
						<p:ajax event="change" listener="#{pedidoBean.cambiarDescuento}"
							update=":formTotales, :mensaje" />
					</p:inputText>

					<h:outputText styleClass="letrasGrandes" style="padding-left: 4px;"
						value="SUBTOTAL:" />
					<h:outputText
						value="#{pedidoBean.cantidadFacturaPresentar.subTotal}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 3px;"
						value="BASE RETENCION:" />
					<h:outputText
						value="#{pedidoBean.cantidadFacturaPresentar.baseRetencion}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" value="IVA 12%:"
						style="padding-left: 8px;" />
					<h:outputText value="#{pedidoBean.cantidadFacturaPresentar.iva}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 8px;"
						value="TOTAL:" />
					<h:outputText value="#{pedidoBean.cantidadFacturaPresentar.total}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

				</h:panelGrid>
			</h:form>

			<h:form id="formDocumento">

				<h:panelGrid columns="3" cellpadding="1">
					<h:outputText value="PEDIDO Nº:" styleClass="negrita" />
					<p:inputText readonly="true"
						value="#{pedidoBean.egreso.codigodocumento}" />
					<h:outputText value="" />

					<p:outputLabel value="CLIENTE" styleClass="negrita" />
					<p:inputText id="comboCedula" readonly="true" style="width: 30em;"
						value="#{pedidoBean.cliente.cedula} - #{pedidoBean.cliente.apellido} #{pedidoBean.cliente.nombre}" />
					<p:commandButton oncomplete="PF('buscarCliente').show()"
						icon="ui-icon-search"
						action="#{pedidoBean.limpiarObjetosBusquedaCliente}"
						update=":formNuevoCliente" />

					<p:outputLabel value="LOCAL:" styleClass="negrita" />
					<p:selectOneMenu id="comboLocal" disabled="#{pedidoBean.bnLocal}"
						value="#{pedidoBean.egreso.local.localid}" filter="true"
						filterMatchMode="contains">
						<f:selectItem itemLabel="ESCOJA UN LOCAL" />
						<f:selectItems value="#{pedidoBean.listaLocales}" var="local"
							itemValue="#{local.localid}" itemLabel="#{local.nombre}" />
						<p:ajax update=":mensaje" event="change"
							listener="#{pedidoBean.obtenerBodega}" />
					</p:selectOneMenu>
					<h:outputText value="" />

					<h:outputText value="CAJERO/VENDEDOR:" styleClass="negrita" />
					<p:inputText readonly="true" style="width: 30em;"
						value="#{pedidoBean.nombreVendedor}" />
					<h:outputText value="" />

					<p:commandButton value="GUARDAR"
						update="formDocumento, :formDataTable,  :formTotales, :mensaje"
						id="btnGuardar" icon="ui-icon-disk"
						actionListener="#{pedidoBean.insertar}" />

					<p:commandButton value="NUEVO" id="btnlimpiar"
						update="formDocumento, :formDataTable, :formTotales"
						icon="ui-icon-document"
						actionListener="#{pedidoBean.limpiarObjetos}" process="@this" />
				</h:panelGrid>
			</h:form>

			<p:dialog header="BUSCAR CLIENTE" widgetVar="buscarCliente"
				resizable="false" modal="false" showEffect="clip" hideEffect="fold"
				id="dialogoCliente" width="50%" style="text-align: center;">

				<h:form id="formNuevoCliente" style="width: auto;">
					<p:outputLabel value="CEDULA/RUC/NOMBRE/APELLIDO:"
						styleClass="negrita" />
					<p:inputText id="comboCedula"
						value="#{pedidoBean.criterioClienteBusqueda}"
						onblur="this.value=this.value.toUpperCase();" />

					<p:commandButton update="comboCedula, tablaClientes, :mensaje"
						icon="#{msg['iconoBuscar']}"
						actionListener="#{pedidoBean.obtenerClientesPorBusqueda}" />

					<p:dataTable id="tablaClientes" var="cliente" style="width: auto;"
						value="#{pedidoBean.listaClienteBusqueda}" paginator="true"
						rows="10" emptyMessage="#{msg['lbl.mensajeTabla']}"
						paginatorPosition="bottom" rowKey="#{cliente.personaid}"
						selection="#{pedidoBean.cliente}" selectionMode="single">

						<p:ajax event="rowSelect" update=":formDocumento"
							listener="#{pedidoBean.cargarCliente}"
							oncomplete="PF('buscarCliente').hide()" />

						<p:column headerText="CEDULA"
							style="text-align:center;width: 50px;">
							 	#{cliente.cedula}
						</p:column>

						<p:column headerText="APELLIDO"
							style="text-align:center;width: 10%;">
							 	#{cliente.apellido}
						</p:column>

						<p:column headerText="NOMBRE"
							style="text-align:center;width: 10%;">
							 	#{cliente.nombre}
						</p:column>
						<p:column headerText="CIUDAD" style="text-align:center;">
							 	#{cliente.ciudad.nombre}
						</p:column>

					</p:dataTable>
				</h:form>

			</p:dialog>

			<h:form id="formDataTable">

				<p:dataTable id="tablaDetalleEgresos" style="width:100% !important"
					scrollable="true"
					tableStyle="text-align: center;margin-right: 0px !important;"
					paginator="true" styleClass="ui-datatable-scrollable-body "
					var="facturaReporte" value="#{pedidoBean.facturaReportes}"
					rows="10" emptyMessage="#{msg['lbl.mensajeTabla']}"
					paginatorPosition="bottom" editable="true" editMode="cell">

					<f:facet name="header">
						<h:form>
							<p:commandButton
								update=":formNuevoProducto , :mensaje, :formInsertarProducto"
								oncomplete="comprobarDialogoProducto(xhr, status, args)"
								actionListener="#{pedidoBean.comprobarLocal}" id="btnNuevo"
								icon="ui-icon-plus" value="INSERTAR PRODUCTO" />
						</h:form>
					</f:facet>

					<p:ajax event="cellEdit" listener="#{pedidoBean.obtenerFila}"
						update=":mensaje" />

					<p:column headerText="GESTIONAR">
						<p:commandButton id="btnEliminar" update=":formEliminar"
							oncomplete="PF('detalleEgresoDialogoEliminar').show()"
							icon="#{msg['iconoEliminar']}"
							disabled="#{!facturaReporte.eliminar}">
							<f:setPropertyActionListener value="#{facturaReporte}"
								target="#{pedidoBean.facturaReporte}" />
						</p:commandButton>
					</p:column>

					<p:column headerText="IVA">  
            				#{facturaReporte.iva}
        				</p:column>

					<p:column headerText="CODIGO" filterBy="#{facturaReporte.codigo}">
							 	#{facturaReporte.codigo}
						</p:column>

					<p:column headerText="DESCRIPCION"
						filterBy="#{facturaReporte.descripcion}">
						<h:outputText id="nombre" value="#{facturaReporte.descripcion}"
							readonly="true" />
						<p:tooltip for="nombre" value="#{facturaReporte.descripcion}" />
					</p:column>

					<p:column headerText="CANTIDAD">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{facturaReporte.cantidad}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{pedidoBean.cantidad}"
									disabled="#{!facturaReporte.eliminar}">
									<p:ajax event="change" listener="#{pedidoBean.cambiarCantidad}"
										update=":formDataTable ,:mensaje, :formTotales" />
								</p:inputText>
							</f:facet>
						</p:cellEditor>
					</p:column>

					<p:column headerText="P. UNIT.">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{facturaReporte.precioUnitVenta}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{pedidoBean.nuevoPrecio}"
									disabled="#{!facturaReporte.eliminar}">
									<p:ajax event="change" listener="#{pedidoBean.cambiarPrecio}"
										update=":formDataTable ,:mensaje, :formTotales" />
								</p:inputText>
							</f:facet>
						</p:cellEditor>
					</p:column>

					<p:column headerText="DESC $">  
            				#{facturaReporte.descuentoDolares}  
        				</p:column>

					<p:column headerText="DESC %">  
            				#{facturaReporte.descuentoPorcentaje}  
        				</p:column>

					<p:column headerText="IMPORTE">  
            				#{facturaReporte.importe}  
        				</p:column>
				</p:dataTable>
			</h:form>

		</p:panel>

		<p:dialog widgetVar="detalleEgresoDialogoEliminar" severity="alert"
			header="SACAR PRODUCTO DE LA LISTA" showEffect="explode"
			hideEffect="explode" modal="false" resizable="false" width="300px"
			style="text-align: center;">
			<h:form id="formEliminar">
				<br />
				<p:outputLabel value="¿ ESTA SEGURO DE SACAR ESTE PRODUCTO ?" />
				<br />
				<br />
				<p:commandButton value="ACEPTAR"
					update=":formDataTable,:mensaje, :formTotales" icon="ui-icon-check"
					oncomplete="PF('detalleEgresoDialogoEliminar').hide()"
					actionListener="#{pedidoBean.eliminarDetalle}" />
				<p:commandButton value="CANCELAR" type="button"
					onclick="PF('detalleEgresoDialogoEliminar').hide()"
					icon="ui-icon-close" />
			</h:form>
		</p:dialog>

		<p:dialog header="INSERTAR PRODUCTO" widgetVar="productoDialogoNuevo"
			resizable="false" modal="false" showEffect="clip" hideEffect="fold"
			id="dialogoNuevo" width="50%">

			<h:form id="formInsertarProducto">
				<h:outputText value="EAN / CÓDIGO1 / CÓDIGO2 / NOMBRE " />
				<p:inputText value="#{pedidoBean.criterioProductoBusqueda}"
					onblur="this.value=this.value.toUpperCase();" />

				<p:commandButton
					update="formInsertarProducto, :formNuevoProducto:tablaProductos, :mensaje"
					icon="#{msg['iconoBuscar']}"
					actionListener="#{pedidoBean.obtenerProductosPorBusqueda}" />
			</h:form>

			<h:form id="formNuevoProducto">

				<p:focus context="formNuevoProducto" />

				<h:panelGrid columns="1" cellpadding="1">
					<p:dataTable id="tablaProductos" var="producto"
						value="#{pedidoBean.listaProductoBusqueda}" paginator="true"
						rows="5" emptyMessage="#{msg['lbl.mensajeTabla']}"
						paginatorPosition="bottom" rowKey="#{producto.productoid}"
						selection="#{pedidoBean.producto}" selectionMode="single">

						<p:ajax event="rowSelect"
							update=":mensaje, :formNuevoProducto:precioUnitId, :formNuevoProducto:ivaUnitId, :formNuevoProducto:precioUnitTotalId, :formNuevoProducto:subId, :formNuevoProducto:ivaId,:formNuevoProducto:totalId, :formNuevoProducto:comboTipoPrecio"
							listener="#{pedidoBean.cargarProducto}" />

						<p:column headerText="EAN" style="text-align:center;width: 50px;">
							 	#{producto.ean}
						</p:column>

						<p:column headerText="NOMBRE"
							style="text-align:center;width: 200px;">
							 	#{producto.nombreimprimir}
						</p:column>

					</p:dataTable>
				</h:panelGrid>

				<h:panelGrid columns="4" cellpadding="1">
					<h:outputText value="PROMOCION:" />
					<p:selectBooleanCheckbox
						value="#{pedidoBean.facturaReporte.promocion}">
						<p:ajax event="change"
							update="precioUnitId, ivaUnitId, precioUnitTotalId, subId, ivaId,totalId"
							listener="#{pedidoBean.calcularPrecioPromocion}" />
					</p:selectBooleanCheckbox>

					<h:outputText />
					<h:outputText />

					<h:outputText value="TIPO DE PRECIO:" />
					<p:selectOneMenu id="comboTipoPrecio"
						value="#{pedidoBean.facturaReporte.precioId}"
						styleClass="comboFormNuevo">
						<f:selectItem itemLabel="ESCOJA TIPO PRECIO" />
						<f:selectItems value="#{pedidoBean.producto.tipoPrecioProductos}"
							var="precio" itemValue="#{precio.tipoprecioproductoid}"
							itemLabel="#{precio.nombre}" />
						<p:ajax event="change"
							update="precioUnitId, ivaUnitId, precioUnitTotalId, subId, ivaId,totalId"
							listener="#{pedidoBean.obtenerPrecio}" />
					</p:selectOneMenu>


					<h:outputText value="CANTIDAD:" styleClass="negrita" />
					<p:inputText value="#{pedidoBean.facturaReporte.cantidad}"
						style="width:80px">
						<p:ajax event="blur"
							update=":mensaje, precioUnitId, ivaUnitId, precioUnitTotalId, subId, ivaId,totalId"
							listener="#{pedidoBean.calcularPrecioCantidad}" />
					</p:inputText>

					<h:outputText value="P. UNIT.:" styleClass="negrita" />
					<p:inputText id="precioUnitId" style="width:80px"
						value="#{pedidoBean.facturaReporte.precioUnitVenta}">
						<p:ajax event="blur"
							update=":mensaje, ivaUnitId, precioUnitTotalId, subId, ivaId, totalId"
							listener="#{pedidoBean.comprobarPrecioCosto}" />
					</p:inputText>

					<h:outputText value="SUBTOTAL:" />
					<p:inputText id="subId" style="width:80px"
						value="#{pedidoBean.facturaReporte.subTotal}">
						<p:ajax event="blur"
							update=":mensaje, precioUnitId, ivaUnitId, precioUnitTotalId, subId, ivaId, totalId"
							listener="#{pedidoBean.calcularPrecioSubTotal}" />
					</p:inputText>

					<h:outputText value="P. UNIT. IVA:" />
					<p:outputLabel id="ivaUnitId" style="width:80px"
						value="#{pedidoBean.facturaReporte.precioUnitIva}" />

					<h:outputText value="IVA:" />
					<p:outputLabel id="ivaId" style="width:80px"
						value="#{pedidoBean.facturaReporte.ivaTotal}" />

					<h:outputText value="P. UNIT. TOTAL:" />
					<p:inputText id="precioUnitTotalId" style="width:80px"
						value="#{pedidoBean.facturaReporte.precioUnitTotal}">
						<p:ajax event="blur"
							update=":mensaje, precioUnitId, ivaUnitId, subId, ivaId, totalId"
							listener="#{pedidoBean.calcularPrecioUnit}" />
					</p:inputText>

					<h:outputText value="SUBTOTAL:" />
					<p:inputText id="totalId" style="width:80px"
						value="#{pedidoBean.facturaReporte.importe}">
						<p:ajax event="blur"
							update=":mensaje,precioUnitId, ivaUnitId, precioUnitTotalId, subId, ivaId"
							listener="#{pedidoBean.calcularPrecioTotal}" />
					</p:inputText>

					<h:outputText value="DESC. %:" styleClass="negrita" />
					<p:inputText id="descPorcentaje" style="width:80px"
						value="#{pedidoBean.facturaReporte.descuentoPorcentaje}">
						<p:ajax event="blur" update=":mensaje, descDolares, totalTotalId"
							listener="#{pedidoBean.calcularDescuentoPorcentaje}" />
					</p:inputText>

					<h:outputText value="DESC. $:" styleClass="negrita" />
					<p:inputText id="descDolares" style="width:80px"
						value="#{pedidoBean.facturaReporte.descuentoDolares}">
						<p:ajax event="blur"
							update=":mensaje, descPorcentaje, totalTotalId"
							listener="#{pedidoBean.calcularDescuentoDolares}" />
					</p:inputText>

					<h:outputText value="" />
					<h:outputText value="" />

					<h:outputText value="TOTAL:" />
					<p:inputText id="totalTotalId" style="width:80px"
						value="#{pedidoBean.facturaReporte.importeTotal}">
					</p:inputText>

					<f:facet name="footer">
						<p:separator />
						<p:commandButton value="INSERTAR"
							update=":formDocumento,formNuevoProducto,:formDataTable ,:mensaje, :formTotales"
							id="btnNuevoAceptar" icon="#{msg['iconoGuardar']}"
							actionListener="#{pedidoBean.insertarDetalle}"
							styleClass="centrarBotonesDialogos" />

						<p:commandButton value="CANCELAR"
							oncomplete="PF('productoDialogoNuevo').hide()"
							id="btnNuevolimpiar" icon="#{msg['iconoCancelar']}"
							styleClass="centrarBotonesDialogos" />
					</f:facet>
				</h:panelGrid>
			</h:form>
		</p:dialog>

		<script type="text/javascript">
			//<![CDATA[
			function comprobar(xhr, status, args) {
				if (!args.validationFailed && args.error) {
					PF('clienteDialogoNuevo').hide();
				}
			}
			function comprobarDialogoProducto(xhr, status, args) {
				if (args.error1) {
					PF('productoDialogoNuevo').show()
				}
			}
			function comprobarFactura(xhr, status, args) {
				if (args.error) {
					PF('clienteDialogoPago').show()
				}
			}
			//]]>

			function handleSubmitRequest(args) {
				if (!args.validationFailed) {
					PF('productoDialogoNuevo').hide();
				}
			}
		</script>
	</ui:define>
</ui:composition>
</html>